package com.google.code.memoriesalbum.util;

import java.io.IOException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.google.code.memoriesalbum.model.PicasaAlbum;
import com.google.gdata.client.photos.PicasawebService;

/**
 * 定数を定義するだけのクラス。
 * <p>一部の定数をクラスパスの{@literal "/secret.properties"}から読み込んでおり、
 * そのファイルが存在しないとアプリケーションはほぼ全ての機能が使えないのでデプロイの際は注意すること！</p>
 * @author shin1ogawa
 */
public class Constants {

	static {
		Properties properties = new Properties();
		try {
			properties.load(Constants.class.getResourceAsStream("/secret.properties"));
		} catch (IOException e) {
			Logger.getLogger(Constants.class.getName()).log(Level.SEVERE,
					"secret.propertiesの読み込みに失敗しました。", e);
		}
		CONSUMER_KEY = properties.getProperty("consumerKey");
		CONSUMER_SECRET = properties.getProperty("consumerSecret");
	}

	/**
	 * Applicationの名称.
	 * <p>{@link PicasawebService}へアクセスする時に必要となる。</p>
	 */
	public static final String APPLICATION_NAME = "memroies-album";

	/** ConsumerKey */
	public static final String CONSUMER_KEY;

	/** ConsumerSecret */
	public static final String CONSUMER_SECRET;

	/** ユーザID */
	public static final String X_HEADER_ID = "x-ma-id";

	/** アクセストークン */
	public static final String X_HEADER_TOKEN = "x-ma-token";

	/** エラーメッセージを格納するためのヘッダ */
	public static final String X_HEADER_ERRORMESSAGE = "x-ma-errormessage";

	/** {@link PicasaAlbum}のリストをキャッシュするキーのプレフィクス */
	public static final String CACHEKEY_PREFIX_ALBUMLIST = "albumlist_";
}
